package cn.itcast.domain.cargo;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class PackingExample implements Serializable{
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public PackingExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria implements Serializable {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andPackingIdIsNull() {
            addCriterion("packing_id is null");
            return (Criteria) this;
        }

        public Criteria andPackingIdIsNotNull() {
            addCriterion("packing_id is not null");
            return (Criteria) this;
        }

        public Criteria andPackingIdEqualTo(String value) {
            addCriterion("packing_id =", value, "packingId");
            return (Criteria) this;
        }

        public Criteria andPackingIdNotEqualTo(String value) {
            addCriterion("packing_id <>", value, "packingId");
            return (Criteria) this;
        }

        public Criteria andPackingIdGreaterThan(String value) {
            addCriterion("packing_id >", value, "packingId");
            return (Criteria) this;
        }

        public Criteria andPackingIdGreaterThanOrEqualTo(String value) {
            addCriterion("packing_id >=", value, "packingId");
            return (Criteria) this;
        }

        public Criteria andPackingIdLessThan(String value) {
            addCriterion("packing_id <", value, "packingId");
            return (Criteria) this;
        }

        public Criteria andPackingIdLessThanOrEqualTo(String value) {
            addCriterion("packing_id <=", value, "packingId");
            return (Criteria) this;
        }

        public Criteria andPackingIdLike(String value) {
            addCriterion("packing_id like", value, "packingId");
            return (Criteria) this;
        }

        public Criteria andPackingIdNotLike(String value) {
            addCriterion("packing_id not like", value, "packingId");
            return (Criteria) this;
        }

        public Criteria andPackingIdIn(List<String> values) {
            addCriterion("packing_id in", values, "packingId");
            return (Criteria) this;
        }

        public Criteria andPackingIdNotIn(List<String> values) {
            addCriterion("packing_id not in", values, "packingId");
            return (Criteria) this;
        }

        public Criteria andPackingIdBetween(String value1, String value2) {
            addCriterion("packing_id between", value1, value2, "packingId");
            return (Criteria) this;
        }

        public Criteria andPackingIdNotBetween(String value1, String value2) {
            addCriterion("packing_id not between", value1, value2, "packingId");
            return (Criteria) this;
        }

        public Criteria andExportIdsIsNull() {
            addCriterion("export_ids is null");
            return (Criteria) this;
        }

        public Criteria andExportIdsIsNotNull() {
            addCriterion("export_ids is not null");
            return (Criteria) this;
        }

        public Criteria andExportIdsEqualTo(String value) {
            addCriterion("export_ids =", value, "exportIds");
            return (Criteria) this;
        }

        public Criteria andExportIdsNotEqualTo(String value) {
            addCriterion("export_ids <>", value, "exportIds");
            return (Criteria) this;
        }

        public Criteria andExportIdsGreaterThan(String value) {
            addCriterion("export_ids >", value, "exportIds");
            return (Criteria) this;
        }

        public Criteria andExportIdsGreaterThanOrEqualTo(String value) {
            addCriterion("export_ids >=", value, "exportIds");
            return (Criteria) this;
        }

        public Criteria andExportIdsLessThan(String value) {
            addCriterion("export_ids <", value, "exportIds");
            return (Criteria) this;
        }

        public Criteria andExportIdsLessThanOrEqualTo(String value) {
            addCriterion("export_ids <=", value, "exportIds");
            return (Criteria) this;
        }

        public Criteria andExportIdsLike(String value) {
            addCriterion("export_ids like", value, "exportIds");
            return (Criteria) this;
        }

        public Criteria andExportIdsNotLike(String value) {
            addCriterion("export_ids not like", value, "exportIds");
            return (Criteria) this;
        }

        public Criteria andExportIdsIn(List<String> values) {
            addCriterion("export_ids in", values, "exportIds");
            return (Criteria) this;
        }

        public Criteria andExportIdsNotIn(List<String> values) {
            addCriterion("export_ids not in", values, "exportIds");
            return (Criteria) this;
        }

        public Criteria andExportIdsBetween(String value1, String value2) {
            addCriterion("export_ids between", value1, value2, "exportIds");
            return (Criteria) this;
        }

        public Criteria andExportIdsNotBetween(String value1, String value2) {
            addCriterion("export_ids not between", value1, value2, "exportIds");
            return (Criteria) this;
        }

        public Criteria andExportNosIsNull() {
            addCriterion("export_nos is null");
            return (Criteria) this;
        }

        public Criteria andExportNosIsNotNull() {
            addCriterion("export_nos is not null");
            return (Criteria) this;
        }

        public Criteria andExportNosEqualTo(String value) {
            addCriterion("export_nos =", value, "exportNos");
            return (Criteria) this;
        }

        public Criteria andExportNosNotEqualTo(String value) {
            addCriterion("export_nos <>", value, "exportNos");
            return (Criteria) this;
        }

        public Criteria andExportNosGreaterThan(String value) {
            addCriterion("export_nos >", value, "exportNos");
            return (Criteria) this;
        }

        public Criteria andExportNosGreaterThanOrEqualTo(String value) {
            addCriterion("export_nos >=", value, "exportNos");
            return (Criteria) this;
        }

        public Criteria andExportNosLessThan(String value) {
            addCriterion("export_nos <", value, "exportNos");
            return (Criteria) this;
        }

        public Criteria andExportNosLessThanOrEqualTo(String value) {
            addCriterion("export_nos <=", value, "exportNos");
            return (Criteria) this;
        }

        public Criteria andExportNosLike(String value) {
            addCriterion("export_nos like", value, "exportNos");
            return (Criteria) this;
        }

        public Criteria andExportNosNotLike(String value) {
            addCriterion("export_nos not like", value, "exportNos");
            return (Criteria) this;
        }

        public Criteria andExportNosIn(List<String> values) {
            addCriterion("export_nos in", values, "exportNos");
            return (Criteria) this;
        }

        public Criteria andExportNosNotIn(List<String> values) {
            addCriterion("export_nos not in", values, "exportNos");
            return (Criteria) this;
        }

        public Criteria andExportNosBetween(String value1, String value2) {
            addCriterion("export_nos between", value1, value2, "exportNos");
            return (Criteria) this;
        }

        public Criteria andExportNosNotBetween(String value1, String value2) {
            addCriterion("export_nos not between", value1, value2, "exportNos");
            return (Criteria) this;
        }

        public Criteria andPackingTimeIsNull() {
            addCriterion("packing_time is null");
            return (Criteria) this;
        }

        public Criteria andPackingTimeIsNotNull() {
            addCriterion("packing_time is not null");
            return (Criteria) this;
        }

        public Criteria andPackingTimeEqualTo(Date value) {
            addCriterion("packing_time =", value, "packingTime");
            return (Criteria) this;
        }

        public Criteria andPackingTimeNotEqualTo(Date value) {
            addCriterion("packing_time <>", value, "packingTime");
            return (Criteria) this;
        }

        public Criteria andPackingTimeGreaterThan(Date value) {
            addCriterion("packing_time >", value, "packingTime");
            return (Criteria) this;
        }

        public Criteria andPackingTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("packing_time >=", value, "packingTime");
            return (Criteria) this;
        }

        public Criteria andPackingTimeLessThan(Date value) {
            addCriterion("packing_time <", value, "packingTime");
            return (Criteria) this;
        }

        public Criteria andPackingTimeLessThanOrEqualTo(Date value) {
            addCriterion("packing_time <=", value, "packingTime");
            return (Criteria) this;
        }

        public Criteria andPackingTimeIn(List<Date> values) {
            addCriterion("packing_time in", values, "packingTime");
            return (Criteria) this;
        }

        public Criteria andPackingTimeNotIn(List<Date> values) {
            addCriterion("packing_time not in", values, "packingTime");
            return (Criteria) this;
        }

        public Criteria andPackingTimeBetween(Date value1, Date value2) {
            addCriterion("packing_time between", value1, value2, "packingTime");
            return (Criteria) this;
        }

        public Criteria andPackingTimeNotBetween(Date value1, Date value2) {
            addCriterion("packing_time not between", value1, value2, "packingTime");
            return (Criteria) this;
        }

        public Criteria andTotalVolumeIsNull() {
            addCriterion("total_volume is null");
            return (Criteria) this;
        }

        public Criteria andTotalVolumeIsNotNull() {
            addCriterion("total_volume is not null");
            return (Criteria) this;
        }

        public Criteria andTotalVolumeEqualTo(Long value) {
            addCriterion("total_volume =", value, "totalVolume");
            return (Criteria) this;
        }

        public Criteria andTotalVolumeNotEqualTo(Long value) {
            addCriterion("total_volume <>", value, "totalVolume");
            return (Criteria) this;
        }

        public Criteria andTotalVolumeGreaterThan(Long value) {
            addCriterion("total_volume >", value, "totalVolume");
            return (Criteria) this;
        }

        public Criteria andTotalVolumeGreaterThanOrEqualTo(Long value) {
            addCriterion("total_volume >=", value, "totalVolume");
            return (Criteria) this;
        }

        public Criteria andTotalVolumeLessThan(Long value) {
            addCriterion("total_volume <", value, "totalVolume");
            return (Criteria) this;
        }

        public Criteria andTotalVolumeLessThanOrEqualTo(Long value) {
            addCriterion("total_volume <=", value, "totalVolume");
            return (Criteria) this;
        }

        public Criteria andTotalVolumeIn(List<Long> values) {
            addCriterion("total_volume in", values, "totalVolume");
            return (Criteria) this;
        }

        public Criteria andTotalVolumeNotIn(List<Long> values) {
            addCriterion("total_volume not in", values, "totalVolume");
            return (Criteria) this;
        }

        public Criteria andTotalVolumeBetween(Long value1, Long value2) {
            addCriterion("total_volume between", value1, value2, "totalVolume");
            return (Criteria) this;
        }

        public Criteria andTotalVolumeNotBetween(Long value1, Long value2) {
            addCriterion("total_volume not between", value1, value2, "totalVolume");
            return (Criteria) this;
        }

        public Criteria andNetWeightsIsNull() {
            addCriterion("net_weights is null");
            return (Criteria) this;
        }

        public Criteria andNetWeightsIsNotNull() {
            addCriterion("net_weights is not null");
            return (Criteria) this;
        }

        public Criteria andNetWeightsEqualTo(Long value) {
            addCriterion("net_weights =", value, "netWeights");
            return (Criteria) this;
        }

        public Criteria andNetWeightsNotEqualTo(Long value) {
            addCriterion("net_weights <>", value, "netWeights");
            return (Criteria) this;
        }

        public Criteria andNetWeightsGreaterThan(Long value) {
            addCriterion("net_weights >", value, "netWeights");
            return (Criteria) this;
        }

        public Criteria andNetWeightsGreaterThanOrEqualTo(Long value) {
            addCriterion("net_weights >=", value, "netWeights");
            return (Criteria) this;
        }

        public Criteria andNetWeightsLessThan(Long value) {
            addCriterion("net_weights <", value, "netWeights");
            return (Criteria) this;
        }

        public Criteria andNetWeightsLessThanOrEqualTo(Long value) {
            addCriterion("net_weights <=", value, "netWeights");
            return (Criteria) this;
        }

        public Criteria andNetWeightsIn(List<Long> values) {
            addCriterion("net_weights in", values, "netWeights");
            return (Criteria) this;
        }

        public Criteria andNetWeightsNotIn(List<Long> values) {
            addCriterion("net_weights not in", values, "netWeights");
            return (Criteria) this;
        }

        public Criteria andNetWeightsBetween(Long value1, Long value2) {
            addCriterion("net_weights between", value1, value2, "netWeights");
            return (Criteria) this;
        }

        public Criteria andNetWeightsNotBetween(Long value1, Long value2) {
            addCriterion("net_weights not between", value1, value2, "netWeights");
            return (Criteria) this;
        }

        public Criteria andGrossWeightsIsNull() {
            addCriterion("gross_weights is null");
            return (Criteria) this;
        }

        public Criteria andGrossWeightsIsNotNull() {
            addCriterion("gross_weights is not null");
            return (Criteria) this;
        }

        public Criteria andGrossWeightsEqualTo(Long value) {
            addCriterion("gross_weights =", value, "grossWeights");
            return (Criteria) this;
        }

        public Criteria andGrossWeightsNotEqualTo(Long value) {
            addCriterion("gross_weights <>", value, "grossWeights");
            return (Criteria) this;
        }

        public Criteria andGrossWeightsGreaterThan(Long value) {
            addCriterion("gross_weights >", value, "grossWeights");
            return (Criteria) this;
        }

        public Criteria andGrossWeightsGreaterThanOrEqualTo(Long value) {
            addCriterion("gross_weights >=", value, "grossWeights");
            return (Criteria) this;
        }

        public Criteria andGrossWeightsLessThan(Long value) {
            addCriterion("gross_weights <", value, "grossWeights");
            return (Criteria) this;
        }

        public Criteria andGrossWeightsLessThanOrEqualTo(Long value) {
            addCriterion("gross_weights <=", value, "grossWeights");
            return (Criteria) this;
        }

        public Criteria andGrossWeightsIn(List<Long> values) {
            addCriterion("gross_weights in", values, "grossWeights");
            return (Criteria) this;
        }

        public Criteria andGrossWeightsNotIn(List<Long> values) {
            addCriterion("gross_weights not in", values, "grossWeights");
            return (Criteria) this;
        }

        public Criteria andGrossWeightsBetween(Long value1, Long value2) {
            addCriterion("gross_weights between", value1, value2, "grossWeights");
            return (Criteria) this;
        }

        public Criteria andGrossWeightsNotBetween(Long value1, Long value2) {
            addCriterion("gross_weights not between", value1, value2, "grossWeights");
            return (Criteria) this;
        }

        public Criteria andMarksIsNull() {
            addCriterion("marks is null");
            return (Criteria) this;
        }

        public Criteria andMarksIsNotNull() {
            addCriterion("marks is not null");
            return (Criteria) this;
        }

        public Criteria andMarksEqualTo(String value) {
            addCriterion("marks =", value, "marks");
            return (Criteria) this;
        }

        public Criteria andMarksNotEqualTo(String value) {
            addCriterion("marks <>", value, "marks");
            return (Criteria) this;
        }

        public Criteria andMarksGreaterThan(String value) {
            addCriterion("marks >", value, "marks");
            return (Criteria) this;
        }

        public Criteria andMarksGreaterThanOrEqualTo(String value) {
            addCriterion("marks >=", value, "marks");
            return (Criteria) this;
        }

        public Criteria andMarksLessThan(String value) {
            addCriterion("marks <", value, "marks");
            return (Criteria) this;
        }

        public Criteria andMarksLessThanOrEqualTo(String value) {
            addCriterion("marks <=", value, "marks");
            return (Criteria) this;
        }

        public Criteria andMarksLike(String value) {
            addCriterion("marks like", value, "marks");
            return (Criteria) this;
        }

        public Criteria andMarksNotLike(String value) {
            addCriterion("marks not like", value, "marks");
            return (Criteria) this;
        }

        public Criteria andMarksIn(List<String> values) {
            addCriterion("marks in", values, "marks");
            return (Criteria) this;
        }

        public Criteria andMarksNotIn(List<String> values) {
            addCriterion("marks not in", values, "marks");
            return (Criteria) this;
        }

        public Criteria andMarksBetween(String value1, String value2) {
            addCriterion("marks between", value1, value2, "marks");
            return (Criteria) this;
        }

        public Criteria andMarksNotBetween(String value1, String value2) {
            addCriterion("marks not between", value1, value2, "marks");
            return (Criteria) this;
        }

        public Criteria andDescriptionIsNull() {
            addCriterion("description is null");
            return (Criteria) this;
        }

        public Criteria andDescriptionIsNotNull() {
            addCriterion("description is not null");
            return (Criteria) this;
        }

        public Criteria andDescriptionEqualTo(String value) {
            addCriterion("description =", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotEqualTo(String value) {
            addCriterion("description <>", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionGreaterThan(String value) {
            addCriterion("description >", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionGreaterThanOrEqualTo(String value) {
            addCriterion("description >=", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionLessThan(String value) {
            addCriterion("description <", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionLessThanOrEqualTo(String value) {
            addCriterion("description <=", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionLike(String value) {
            addCriterion("description like", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotLike(String value) {
            addCriterion("description not like", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionIn(List<String> values) {
            addCriterion("description in", values, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotIn(List<String> values) {
            addCriterion("description not in", values, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionBetween(String value1, String value2) {
            addCriterion("description between", value1, value2, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotBetween(String value1, String value2) {
            addCriterion("description not between", value1, value2, "description");
            return (Criteria) this;
        }

        public Criteria andPackingMoneyIsNull() {
            addCriterion("packing_money is null");
            return (Criteria) this;
        }

        public Criteria andPackingMoneyIsNotNull() {
            addCriterion("packing_money is not null");
            return (Criteria) this;
        }

        public Criteria andPackingMoneyEqualTo(Long value) {
            addCriterion("packing_money =", value, "packingMoney");
            return (Criteria) this;
        }

        public Criteria andPackingMoneyNotEqualTo(Long value) {
            addCriterion("packing_money <>", value, "packingMoney");
            return (Criteria) this;
        }

        public Criteria andPackingMoneyGreaterThan(Long value) {
            addCriterion("packing_money >", value, "packingMoney");
            return (Criteria) this;
        }

        public Criteria andPackingMoneyGreaterThanOrEqualTo(Long value) {
            addCriterion("packing_money >=", value, "packingMoney");
            return (Criteria) this;
        }

        public Criteria andPackingMoneyLessThan(Long value) {
            addCriterion("packing_money <", value, "packingMoney");
            return (Criteria) this;
        }

        public Criteria andPackingMoneyLessThanOrEqualTo(Long value) {
            addCriterion("packing_money <=", value, "packingMoney");
            return (Criteria) this;
        }

        public Criteria andPackingMoneyIn(List<Long> values) {
            addCriterion("packing_money in", values, "packingMoney");
            return (Criteria) this;
        }

        public Criteria andPackingMoneyNotIn(List<Long> values) {
            addCriterion("packing_money not in", values, "packingMoney");
            return (Criteria) this;
        }

        public Criteria andPackingMoneyBetween(Long value1, Long value2) {
            addCriterion("packing_money between", value1, value2, "packingMoney");
            return (Criteria) this;
        }

        public Criteria andPackingMoneyNotBetween(Long value1, Long value2) {
            addCriterion("packing_money not between", value1, value2, "packingMoney");
            return (Criteria) this;
        }

        public Criteria andStateIsNull() {
            addCriterion("state is null");
            return (Criteria) this;
        }

        public Criteria andStateIsNotNull() {
            addCriterion("state is not null");
            return (Criteria) this;
        }

        public Criteria andStateEqualTo(Integer value) {
            addCriterion("state =", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateNotEqualTo(Integer value) {
            addCriterion("state <>", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateGreaterThan(Integer value) {
            addCriterion("state >", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateGreaterThanOrEqualTo(Integer value) {
            addCriterion("state >=", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateLessThan(Integer value) {
            addCriterion("state <", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateLessThanOrEqualTo(Integer value) {
            addCriterion("state <=", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateIn(List<Integer> values) {
            addCriterion("state in", values, "state");
            return (Criteria) this;
        }

        public Criteria andStateNotIn(List<Integer> values) {
            addCriterion("state not in", values, "state");
            return (Criteria) this;
        }

        public Criteria andStateBetween(Integer value1, Integer value2) {
            addCriterion("state between", value1, value2, "state");
            return (Criteria) this;
        }

        public Criteria andStateNotBetween(Integer value1, Integer value2) {
            addCriterion("state not between", value1, value2, "state");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria implements Serializable{

        protected Criteria() {
            super();
        }
    }

    public static class Criterion implements Serializable{
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}